using DataObjects;
using DataSecurity.ADO.SqlServer.Dictionary;
using DataSecurity.StandartInterfaces;

namespace DataSecurity.ADO.SqlServer
{
    /// <summary>
    /// Sql Server specific factory that creates Sql Server specific data access objects.
    /// </summary>
    /// <remarks>
    /// GoF Design Pattern: Factory.
    /// </remarks>
    public class SqlServerDaoFactory : IDaoFactory
    {
        public IRoleInSite RoleInSite { get { return new SqlServerRoleInSiteDao(); } }
        public IEmailConfig EmailConfig { get { return new SqlServerEmailConfigDao(); } }
        public IMembership Membership { get { return new SqlServerMembershipDao(); } }
        public IRole Role { get { return new SqlServerRoleDao(); } }
        public IUser User { get { return new SqlServerUserDao(); } }
        public IPermission Permission { get { return new SqlServerPermissionDao(); } }
        public IPermissionInSite PermissionInSite { get { return new SqlServerPermissionInSiteDao(); } }
        public ISite Site { get { return new SqlServerSiteDao(); } }
    }
}
